package object.toString;

public class toStringDemo{
    /*
    public String toString():返回对象的字符串表示

    细节： 使用打印语句，打印对象名的时候，println方法，源码层面会自动调用该对象的toString方法
    public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    }
     */
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a);
        System.out.println(a.toString());
        /*

        getClass()+getName():类名称，全类名（包名加类名）
        Integer.toHexString()：转十六进制
        hashCode()：返回对象地址+哈希算法，算出来的整数（哈希值）
        public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

         */

        Student stu = new Student("张三",12);
        System.out.println(stu);

    }
}

class Student{
    String name;
    int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Student(){

    }

    public Student(String name,int age){
        this.age = age;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
